<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="Content-Language" content="zh-CN"><title>kernel-install
  中文手册 [金步国]</title><style>
@font-face { font-family: "JinBuGuoWebMono"; src: url("http://www.jinbuguo.com/d/mono.ttf") format("truetype"); }
* { font-family: "JinBuGuoWebMono", "Ubuntu Mono", "Consolas", "Menlo", monospace; }
body { margin:10px; }
h1 { text-align:center; background:#ddd; }
h2#auth_name { text-align:center; margin: 10px 5%; }

    a.headerlink {
      color: #c60f0f;
      font-size: 0.8em;
      padding: 0 4px 0 4px;
      text-decoration: none;
      visibility: hidden;
    }

    a.headerlink:hover {
      background-color: #c60f0f;
      color: white;
    }

    h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink, dt:hover > a.headerlink {
      visibility: visible;
    }
</style><script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?d286c55b63a3c54a1e43d10d4c203e75"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><h1>kernel-install 中文手册</h1><h2 id="auth_name">译者：<strong><a href="http://www.jinbuguo.com/">金步国</a></strong></h2><hr><h3>版权声明</h3><p>本文译者是一位开源理念的坚定支持者，所以本文虽然不是软件，但是遵照开源的精神发布。</p><ul><li>无担保：本文译者不保证译文内容准确无误，亦不承担任何由于使用此文档所导致的损失。</li><li>自由使用：任何人都可以自由的<u>阅读/链接/打印</u>此文档，无需任何附加条件。</li><li>名誉权：任何人都可以自由的<u>转载/引用/再创作</u>此文档，但必须保留译者署名并注明出处。</li></ul><h3>其他作品</h3><p>本文译者十分愿意与他人分享劳动成果，如果你对我的其他翻译作品或者技术文章有兴趣，可以在如下位置查看现有的作品集：</p><ul><li><a href="http://www.jinbuguo.com/">金步国作品集</a> [ <a href="http://www.jinbuguo.com/">http://www.jinbuguo.com/</a> ]</li></ul><h3>联系方式</h3><p>由于译者水平有限，因此不能保证译文内容准确无误。如果你发现了译文中的错误(哪怕是错别字也好)，请来信指出，任何提高译文质量的建议我都将虚心接纳。</p><ul><li>Email(QQ)：70171448在QQ邮箱</li></ul><hr><a href="systemd.index.html">手册索引</a> ·
  <a href="systemd.directives.html">指令索引</a><span style="float:right">systemd-241</span><hr><div class="refentry"><a name="kernel-install"></a><div class="titlepage"></div><div class="refnamediv"><h2>名称</h2><p>kernel-install — 在 /boot 中添加或删除内核与 initrd 镜像</p></div><div class="refsynopsisdiv"><h2>大纲</h2><div class="cmdsynopsis"><p><code class="command">kernel-install</code>   COMMAND   <em class="replaceable"><code>KERNEL-VERSION</code></em>   <em class="replaceable"><code>KERNEL-IMAGE</code></em>  [<em class="replaceable"><code>INITRD-FILE</code></em>...]</p></div></div><div class="refsect1"><a name="id-1.5"></a><h2 id="描述">描述<a class="headerlink" title="Permalink to this headline" href="kernel-install.html#%E6%8F%8F%E8%BF%B0">¶</a></h2><p>
      <span class="command"><strong>kernel-install</strong></span> 用于在 <code class="filename">/boot</code>
       中添加或删除内核与 initrd 镜像。
    </p><p><span class="command"><strong>kernel-install</strong></span> 将会执行
     <code class="filename">/usr/lib/kernel/install.d/</code>
    与 <code class="filename">/etc/kernel/install.d/</code> 目录下的可执行文件。
    所有可执行文件，无论它位于哪个目录，都统一按照文件名的字典顺序依次执行。
    因为
     <code class="filename">/etc/kernel/install.d/</code> 目录下的文件会取代
     <code class="filename">/usr/lib/kernel/install.d/</code> 目录下的同名文件，
    所以，如果系统管理员想要屏蔽 <code class="filename">/usr/lib/kernel/install.d/</code>
    目录中的某个可执行文件，那么最佳做法是在 <code class="filename">/etc/kernel/install.d/</code>
    目录中创建一个指向 <code class="filename">/dev/null</code> 的同名符号链接。
    注意，可执行文件必须以 "<code class="literal">.install</code>" 作为后缀名，否则将被忽略。</p><p>这些可执行文件在执行成功后必须返回 <code class="constant">0</code> 。
    如果返回 <code class="constant">77</code> 则表示彻底终止整个操作，
    也就是所有字典顺序上的后续可执行文件都将被跳过。</p></div><div class="refsect1"><a name="id-1.6"></a><h2 id="命令(COMMAND)">命令(COMMAND)<a class="headerlink" title="Permalink to this headline" href="kernel-install.html#%E5%91%BD%E4%BB%A4(COMMAND)">¶</a></h2><p>可以使用的命令如下：</p><div class="variablelist"><dl class="variablelist"><dt id="add KERNEL-VERSION KERNEL-IMAGE [INITRD-FILE ...]"><span class="term"><span class="command"><strong>add <em class="replaceable"><code>KERNEL-VERSION</code></em> <em class="replaceable"><code>KERNEL-IMAGE</code></em> [<em class="replaceable"><code>INITRD-FILE</code></em> ...]</strong></span></span><a class="headerlink" title="Permalink to this term" href="kernel-install.html#add%20KERNEL-VERSION%20KERNEL-IMAGE%20%5BINITRD-FILE%20...%5D">¶</a></dt><dd><p><em class="replaceable"><code>KERNEL-VERSION</code></em> 是内核版本字符串、<em class="replaceable"><code>KERNEL-IMAGE</code></em> 是内核镜像文件的路径。
           <span class="command"><strong>kernel-install</strong></span> 将会创建
          <code class="filename">/boot/<em class="replaceable"><code>MACHINE-ID</code></em>/<em class="replaceable"><code>KERNEL-VERSION</code></em>/</code>
          目录，并在调用 <code class="filename">/usr/lib/kernel/install.d/*.install</code> 与
          <code class="filename">/etc/kernel/install.d/*.install</code> 插件时向它们传递如下参数：

          </p><pre class="programlisting">add <em class="replaceable"><code>KERNEL-VERSION</code></em> <code class="filename">/boot/<em class="replaceable"><code>MACHINE-ID</code></em>/<em class="replaceable"><code>KERNEL-VERSION</code></em>/</code> <em class="replaceable"><code>KERNEL-IMAGE</code></em> [<em class="replaceable"><code>INITRD-FILE</code></em> ...]</pre><p>
          </p><p>有两个默认的插件将会被调用，并执行下列操作：</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p><code class="filename">50-depmod.install</code> 将会以
            <em class="replaceable"><code>KERNEL-VERSION</code></em> 为参数调用
            <a href="http://www.jinbuguo.com/systemd/depmod.html#"><span class="citerefentry"><span class="refentrytitle">depmod</span>(8)</span></a> 工具(创建内核模块之间依赖关系的描述文件)。</p></li><li class="listitem"><p><code class="filename">90-loaderentry.install</code> 将会：(1)把 <em class="replaceable"><code>KERNEL-IMAGE</code></em>
            复制到
            <code class="filename">/boot/<em class="replaceable"><code>MACHINE-ID</code></em>/<em class="replaceable"><code>KERNEL-VERSION</code></em>/linux</code> 、
            (2)把 <em class="replaceable"><code>INITRD-FILE</code></em>(若存在)
            复制到
            <code class="filename">/boot/<em class="replaceable"><code>MACHINE-ID</code></em>/<em class="replaceable"><code>KERNEL_VERSION</code></em>/<em class="replaceable"><code>INITRD-FILE</code></em></code> 、
            (3)按照 <a class="ulink" href="https://systemd.io/BOOT_LOADER_SPECIFICATION" target="_top">Boot Loader Specification</a> 规范创建一个
            <code class="filename">/boot/loader/entries/<em class="replaceable"><code>MACHINE-ID</code></em>-<em class="replaceable"><code>KERNEL-VERSION</code></em>.conf</code>
            启动项描述文件，启动项标题将被设为
            <code class="filename">/etc/os-release</code> 或 <code class="filename">/usr/lib/os-release</code>(如果前一个不存在)
            中 <em class="replaceable"><code>PRETTY_NAME</code></em> 值(若不存在则使用"Linux <em class="replaceable"><code>KERNEL-VERSION</code></em>")。</p></li></ul></div></dd><dt id="remove KERNEL-VERSION"><span class="term"><span class="command"><strong>remove <em class="replaceable"><code>KERNEL-VERSION</code></em></strong></span></span><a class="headerlink" title="Permalink to this term" href="kernel-install.html#remove%20KERNEL-VERSION">¶</a></dt><dd><p><em class="replaceable"><code>KERNEL-VERSION</code></em> 是内核版本字符串。该命令在调用
          <code class="filename">/usr/lib/kernel/install.d/*.install</code> 与
          <code class="filename">/etc/kernel/install.d/*.install</code> 插件时向它们传递如下参数：

          </p><pre class="programlisting">remove <em class="replaceable"><code>KERNEL-VERSION</code></em> <code class="filename">/boot/<em class="replaceable"><code>MACHINE-ID</code></em>/<em class="replaceable"><code>KERNEL-VERSION</code></em>/</code></pre><p>
          </p><p>然后 <span class="command"><strong>kernel-install</strong></span> 将会完整删除整个
          <code class="filename">/boot/<em class="replaceable"><code>MACHINE-ID</code></em>/<em class="replaceable"><code>KERNEL-VERSION</code></em>/</code>
          目录及其内容。</p><p>有两个默认的插件将会被调用，并执行下列操作：</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p><code class="filename">50-depmod.install</code> 将会删除由 <span class="command"><strong>depmod</strong></span> 命令为该内核生成的文件。</p></li><li class="listitem"><p><code class="filename">90-loaderentry.install</code> 将会删除
            <code class="filename">/boot/loader/entries/<em class="replaceable"><code>MACHINE-ID</code></em>-<em class="replaceable"><code>KERNEL-VERSION</code></em>.conf</code> 文件。</p></li></ul></div></dd></dl></div></div><div class="refsect1"><a name="id-1.7"></a><h2 id="退出状态">退出状态<a class="headerlink" title="Permalink to this headline" href="kernel-install.html#%E9%80%80%E5%87%BA%E7%8A%B6%E6%80%81">¶</a></h2><p>如果每一个可执行插件都返回 0 或 77 ，那么返回 0 表示成功；否则返回非零值表示失败。</p></div><div class="refsect1"><a name="id-1.8"></a><h2 id="文件">文件<a class="headerlink" title="Permalink to this headline" href="kernel-install.html#%E6%96%87%E4%BB%B6">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="
          /usr/lib/kernel/install.d/*.install
          /etc/kernel/install.d/*.install
        "><span class="term">
          <code class="filename">/usr/lib/kernel/install.d/*.install</code>
          <code class="filename">/etc/kernel/install.d/*.install</code>
        </span><a class="headerlink" title="Permalink to this term" href="kernel-install.html#%0A%20%20%20%20%20%20%20%20%20%20/usr/lib/kernel/install.d/*.install%0A%20%20%20%20%20%20%20%20%20%20/etc/kernel/install.d/*.install%0A%20%20%20%20%20%20%20%20">¶</a></dt><dd><p>可执行插件(一般都是脚本)</p></dd><dt id="
          /etc/kernel/cmdline
          /proc/cmdline
        "><span class="term">
          <code class="filename">/etc/kernel/cmdline</code>
          <code class="filename">/proc/cmdline</code>
        </span><a class="headerlink" title="Permalink to this term" href="kernel-install.html#%0A%20%20%20%20%20%20%20%20%20%20/etc/kernel/cmdline%0A%20%20%20%20%20%20%20%20%20%20/proc/cmdline%0A%20%20%20%20%20%20%20%20">¶</a></dt><dd><p>将会被 <code class="filename">90-loaderentry.install</code> 插件读取。
            <code class="filename">/etc/kernel/cmdline</code> 记录了内核引导选项。
            如果该文件不存在，则使用 <code class="filename">/proc/cmdline</code> 文件。</p></dd><dt id="
          /etc/kernel/tries
        "><span class="term">
          <code class="filename">/etc/kernel/tries</code>
        </span><a class="headerlink" title="Permalink to this term" href="kernel-install.html#%0A%20%20%20%20%20%20%20%20%20%20/etc/kernel/tries%0A%20%20%20%20%20%20%20%20">¶</a></dt><dd><p>如果该文件存在，那么 <code class="filename">90-loaderentry.install</code> 插件将会从中读取一个整数值。
            在生成启动项描述文件时，该整数将被嵌入文件名称中(也就是
            <code class="filename">/boot/loader/entries/<em class="replaceable"><code>MACHINE-ID</code></em>-<em class="replaceable"><code>KERNEL-VERSION</code></em>+<em class="replaceable"><code>TRIES</code></em>.conf</code>)。
            对于实现了启动计数机制的
            <a href="systemd-boot.html#"><span class="citerefentry"><span class="refentrytitle">systemd-boot</span>(7)</span></a>
            引导管理器来说，是很有意义的。</p></dd><dt id="
          /etc/machine-id
        "><span class="term">
          <code class="filename">/etc/machine-id</code>
        </span><a class="headerlink" title="Permalink to this term" href="kernel-install.html#%0A%20%20%20%20%20%20%20%20%20%20/etc/machine-id%0A%20%20%20%20%20%20%20%20">¶</a></dt><dd><p>记录了本系统的 <em class="replaceable"><code>MACHINE-ID</code></em></p></dd><dt id="
          /etc/os-release
          /usr/lib/os-release
        "><span class="term">
          <code class="filename">/etc/os-release</code>
          <code class="filename">/usr/lib/os-release</code>
        </span><a class="headerlink" title="Permalink to this term" href="kernel-install.html#%0A%20%20%20%20%20%20%20%20%20%20/etc/os-release%0A%20%20%20%20%20%20%20%20%20%20/usr/lib/os-release%0A%20%20%20%20%20%20%20%20">¶</a></dt><dd><p>记录了用作启动选项标题的 <em class="replaceable"><code>PRETTY_NAME</code></em></p></dd></dl></div></div><div class="refsect1"><a name="id-1.9"></a><h2 id="参见">参见<a class="headerlink" title="Permalink to this headline" href="kernel-install.html#%E5%8F%82%E8%A7%81">¶</a></h2><p>
      <a href="machine-id.html#"><span class="citerefentry"><span class="refentrytitle">machine-id</span>(5)</span></a>,
      <a href="os-release.html#"><span class="citerefentry"><span class="refentrytitle">os-release</span>(5)</span></a>,
      <a href="http://www.jinbuguo.com/systemd/depmod.html#"><span class="citerefentry"><span class="refentrytitle">depmod</span>(8)</span></a>,
      <a href="systemd-boot.html#"><span class="citerefentry"><span class="refentrytitle">systemd-boot</span>(7)</span></a>,
      <a class="ulink" href="https://systemd.io/BOOT_LOADER_SPECIFICATION" target="_top">Boot Loader Specification</a>
    </p></div></div></body></html>
